From 41a073263a5b16c2ecde58d7ef0f6ad2d296b3ac Mon Sep 17 00:00:00 2001 From: =?utf8?q?Javier=20Jard=C3=B3n?= Date: Wed, 14 Apr 2010 14:18:25 +0200 Subject: [PATCH] Don't use GTK_WIDGET_*SET_FLAGS (wid, GTK_HAS_DEFAULT) Introduce internal _gtk_widget_set_has_default() for this Fixes https://bugzilla.gnome.org/show_bug.cgi?id=614515 --- gtk/gtkwidget.c | 10 ++++++++++ gtk/gtkwidget.h | 2 ++ gtk/gtkwindow.c | 12 ++++++------ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 772619f8c5..06bfe04cca 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -5612,6 +5612,16 @@ gtk_widget_has_default (GtkWidget *widget) return (GTK_OBJECT_FLAGS (widget) & GTK_HAS_DEFAULT) != 0; } +void +_gtk_widget_set_has_default (GtkWidget *widget, + gboolean has_default) +{ + if (has_default) + GTK_OBJECT_FLAGS (widget) |= GTK_HAS_DEFAULT; + else + GTK_OBJECT_FLAGS (widget) &= ~(GTK_HAS_DEFAULT); +} + /** * gtk_widget_grab_default: * @widget: a #GtkWidget diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index 17bb2b6f21..f609873eb0 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -1296,6 +1296,8 @@ void gtk_requisition_free (GtkRequisition *requisition); # define gtk_widget_unref g_object_unref #endif /* GTK_TRACE_OBJECTS && __GNUC__ */ +void _gtk_widget_set_has_default (GtkWidget *widget, + gboolean has_default); void _gtk_widget_set_has_grab (GtkWidget *widget, gboolean has_grab); void _gtk_widget_set_is_toplevel (GtkWidget *widget, diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 108a7c14e2..128e42910f 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -1664,7 +1664,7 @@ gtk_window_set_default (GtkWindow *window, if (window->focus_widget != window->default_widget || !gtk_widget_get_receives_default (window->default_widget)) - GTK_WIDGET_UNSET_FLAGS (window->default_widget, GTK_HAS_DEFAULT); + _gtk_widget_set_has_default (window->default_widget, FALSE); gtk_widget_queue_draw (window->default_widget); } @@ -1674,7 +1674,7 @@ gtk_window_set_default (GtkWindow *window, { if (window->focus_widget == NULL || !gtk_widget_get_receives_default (window->focus_widget)) - GTK_WIDGET_SET_FLAGS (window->default_widget, GTK_HAS_DEFAULT); + _gtk_widget_set_has_default (window->default_widget, TRUE); gtk_widget_queue_draw (window->default_widget); } @@ -5480,11 +5480,11 @@ gtk_window_real_set_focus (GtkWindow *window, if (gtk_widget_get_receives_default (window->focus_widget) && (window->focus_widget != window->default_widget)) { - GTK_WIDGET_UNSET_FLAGS (window->focus_widget, GTK_HAS_DEFAULT); + _gtk_widget_set_has_default (window->focus_widget, FALSE); gtk_widget_queue_draw (window->focus_widget); if (window->default_widget) - GTK_WIDGET_SET_FLAGS (window->default_widget, GTK_HAS_DEFAULT); + _gtk_widget_set_has_default (window->default_widget, TRUE); } window->focus_widget = NULL; @@ -5506,10 +5506,10 @@ gtk_window_real_set_focus (GtkWindow *window, (window->focus_widget != window->default_widget)) { if (gtk_widget_get_can_default (window->focus_widget)) - GTK_WIDGET_SET_FLAGS (window->focus_widget, GTK_HAS_DEFAULT); + _gtk_widget_set_has_default (window->focus_widget, TRUE); if (window->default_widget) - GTK_WIDGET_UNSET_FLAGS (window->default_widget, GTK_HAS_DEFAULT); + _gtk_widget_set_has_default (window->default_widget, FALSE); } if (window->has_focus) -- 2.30.2